package JavaSE基础增强.reflect;
import JavaSE基础增强.doMain.Person;
import JavaSE基础增强.doMain.Student;
public class ReflectDemo1 {
    /*获取Class类对象的方式：
    1.Class.forName("全类名")：将字节码文件加载进内存，返回Class对象。
    2.类名.Class：通过类名的属性Class获取。
    3.对象.getClass()：Object类是所以类的超类，getClass()方法在Object类中定义：返回此Object的运行时类。
    * */
    public static void main(String[] args) throws Exception{
        //1.Class.forName("全类名")：将字节码文件加载进内存，返回Class对象。
        Class cls1 = Class.forName("JavaSE基础增强.doMain.Person");
        System.out.println(cls1);
        //2.类名.Class：通过类名的属性Class获取。
        Class cls2 = Person.class;
        System.out.println(cls2);
        //对象.getClass()：Object类是所以类的超类，getClass()方法在Object类中定义：返回此Object的运行时类。
        Person p = new Person();
        Class cls3 = p.getClass();
        System.out.println(cls3);

        /*检验这三个Class对象是否相同,比较地址，返回bool*/
        System.out.println(cls1==cls2); //true
        System.out.println(cls1==cls3); //true
        /*不同字节码文件里的对象是不同的*/
        Class c = Student.class;
        System.out.println(c==cls1); //false
    }
}
